// import { tt } from "../../../ttapi_interface/ttapi.js";
// import * as tt2 from "../../../ttapi_layer2/ttlayer2.js";
// import * as QGame from "../../../ttapi_layer2/qgame/qgame.js";
// import { ScenePlayer, SpriteRender } from "./sceneplayer.js";
// import { IRenderObj, ISceneObj } from "./sceneobj.js";
// import { Smoke } from "./smoke.js";

// export class GameScene {
//     _back_far: tt.Sprite;
//     _enemysprite: tt.Sprite;
//     _sceneLimit: tt.Rectangle = new tt.Rectangle(-300, -240, 600, 480);
//     // _enemypos: tt.Vector2[] = []
//     _limitsprite: tt.Sprite;
//     _limitborderColor: tt.Color = new tt.Color(0.8, 0, 0, 0.5);
//     _sceneobjs: ISceneObj[] = [];
//     async Init(): Promise<void> {

//         this._limitsprite = new tt.Sprite(tt.graphic.getWhiteTexture(), null);
//         this._back_far = await QGame.QGame.LoadStandaloneSpriteAsync("bg/bg1.png");
//         this._enemysprite = await QGame.QGame.LoadStandaloneSpriteAsync("bird/b1.png");

//         // this._enemypos = [];
//         for (var i = 0; i < 100; i++) {
//             let sceneobj = new ScenePlayer();
//             sceneobj.spriterender = new SpriteRender();
//             sceneobj.spriterender.sprite = this._enemysprite;
//             sceneobj.pos = new tt.Vector2(Math.random() * 600 - 300, Math.random() * 480 - 240)
//             sceneobj.SetDirWant(tt.Vector2.Normal(new tt.Vector2(Math.random(), Math.random())));
//             sceneobj.spriterender.color = new tt.Color(0.8, 1, 1, 1);
//             sceneobj.speedwant = Math.random() * 100 + 30;
//             sceneobj.smoke = new Smoke();
//             sceneobj.smoke.smokesprite = await QGame.QGame.LoadStandaloneSpriteAsync("smoke.png");
//             this.AddObj(sceneobj);
//             //this._enemypos.push(new tt.Vector2(Math.random() * 600 - 300, Math.random() * 480 - 240));
//         }
//     }
//     AddObj(obj: ISceneObj) {
//         obj.scene = this;
//         this._sceneobjs.push(obj);
//     }
//     _renderobjs: IRenderObj[] = []
//     Update(delta: number): void {
//         for (var i = 0; i < this._sceneobjs.length; i++) {
//             this._sceneobjs[i].Update(delta);
//         }
//     }
//     Render(batcher: tt.IBatcher, camera: tt.Vector2): void {
//         //远景 固定
        
//         batcher.LookAt.X=0;
//         batcher.LookAt.Y=0
//         batcher.ResetMatrix();
//         this._back_far.RenderRect(batcher, new tt.Rectangle( - 240,  - 120, 480, 240));


//         batcher.LookAt.X=camera.X;
//         batcher.LookAt.Y=camera.Y;
//         batcher.ResetMatrix();
//         this.DrawLimitRect(batcher);

//         this._renderobjs.splice(0);
//         for (var i = 0; i < this._sceneobjs.length; i++) {
//             let s = this._sceneobjs[i].renderobjs;
//             if (s != undefined)
//                 this._renderobjs.push(...s);

//         }
//         this._renderobjs.sort((a, b) => {
//             return a.sortvalue - b.sortvalue;
//         });
//         for (var i = 0; i < this._renderobjs.length; i++) {
//             this._renderobjs[i].Render(batcher);
//         }

//         //this._enemysprite.RenderWithRotate(batcher, this._enemypos[0], tt.Vector2.One, 0, 16, 16, new tt.Color(0.5, 1, 1));
//         // for (var i = 0; i < this._enemypos.length; i++) {
//         //     this._enemysprite.RenderWithRotate(batcher, this._enemypos[i], tt.Vector2.One, 0, 16, 16, new tt.Color(0.5, 1, 1));

//         // }
//     }

//     DrawLimitRect(batcher: tt.IBatcher): void {
//         //this._limitsprite.RenderRect(batcher, new tt.Rectangle(0, 0, 100, 100));
//         this._limitsprite.RenderRect(batcher, new tt.Rectangle(this._sceneLimit.X, this._sceneLimit.Y, this._sceneLimit.Width, 4), this._limitborderColor);
//         this._limitsprite.RenderRect(batcher, new tt.Rectangle(this._sceneLimit.X, this._sceneLimit.Y + this._sceneLimit.Height - 4, this._sceneLimit.Width, 4), this._limitborderColor);
//         this._limitsprite.RenderRect(batcher, new tt.Rectangle(this._sceneLimit.X, this._sceneLimit.Y, 4, this._sceneLimit.Height), this._limitborderColor);
//         this._limitsprite.RenderRect(batcher, new tt.Rectangle(this._sceneLimit.X + this._sceneLimit.Width - 4, this._sceneLimit.Y, 4, this._sceneLimit.Height), this._limitborderColor);
//     }
// }